/**
 * 全局收割者
 */

let baser = require("./baser");

// 返回baser的内部生命函数
module.exports = function (roomname) {
    return baser(
        /**
         * 准备函数，去目标房间，卸货
         * @param {Creep} creep
         */
        function (creep) {
            if (!creep.actionToRoom(roomname)) {
                return 1;
            }
            // 空了开始采集
            if (creep.store[RESOURCE_ENERGY] < 5) {
                return 2;
            }
            // 继续卸货
            if (creep.actionStore() == 1)
                return 3;
            return 1;
        },
        /**
         * 工作函数，采集
         * @param {Creep} creep
         */
        function (creep) {
            if (!creep.actionToRoom(roomname)) {
                return 2;
            }
            // 满了开始卸货
            if (creep.store.getFreeCapacity() < 5) {
                return 1;
            }
            // 继续采集
            if (creep.actionWithdraw() == 1) {
                creep.actionHarvest();
            }
            return 2;
        },
        /**
         * 结束函数，闲逛或其他
         * @param {Creep} creep
         */
        function (creep) {
            // 空了开始采集
            if (creep.store[RESOURCE_ENERGY] < 5)
                return 2;
            creep.actionUpgrade();
            if (creep.actionStore() == 1)
                return 3;
            return 1;
        });
}